from flask import Flask

app = Flask(__name__)
#这里的第一个参数(__name__)是应用模块或者包的名称

@app.route('/')
#route() 装饰器告诉 Flask 什么样 的URL 能触发我们的函数
def hello_world():
    return 'Hello World!'
#这个函数的名字也在生成 URL 时被特定的函数采用，这个函数返回我们想 要显示在用户浏览器中的信息。

if __name__ == '__main__':
    app.run(debug=True)
#最后我们用 run() 函数来让应用运行在本地服务器上。 其中 if __name__ == '__main__': 确保服务器只会在该脚本被 Python 解释器直接执行的时候才会运行，而不是作为模块导入的时候。
#debug=True 或者app.debug = True 启用了调试支持，服务器会在代码修改后自动重新载入，并在发生 错误时提供一个相当有用的调试器。

'''如果你禁用了 debug 或信任你所在网络的用户，你可以简单修改调用 run() 的方法使你的服务器公开可用，如下:
app.run(host='0.0.0.0')
这会让操作系统监听所有公网 IP。'''

#route() 装饰器把一个函数绑定到对应的 URL 上。这里是一些基本的例子:
@app.route('/')
def index():
    return 'Index Page'

@app.route('/hello')
def hello():
    return 'Hello World'
#但是，不仅如此！你可以构造含有动态部分的 URL，也可以在一个函数上附着 多个规则。

'''
@app.route('/projects/')
def projects():
    return 'The project page'

@app.route('/about')
def about():
    return 'The about page'
区别在于第一个的参数/projects/最后面带斜杠，如果访问时没有加最后的斜杠也会重定向到/projects/，而/about如果访问是加斜杠则会返回404
'''


